<?php

/**
 * 
 * Ezt a controllert minden frontend controller osztálynak örökölnie kell
 * 
 * 
 */
if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Frontend_controller extends CI_Controller {

    public $data = NULL;

    function __construct() {
        parent::__construct();
        $this->benchmark->mark('frontend_start');
    }

    /**
     * 
     * 
     * Teljes view betöltése
     * 
     * $main_view: paraméterül kapja a betöltendő frondend view-t
     * tehát a view nevét, amit be kell tölteni.
     * 
     * @todo kapcsolat meg ami mindenhol kell: ezt itt kell betölteni!!
     * 
     * 
     * @param type $main 
     */
    function _load_view($main_view) {
        // fejlécben mindíg meg kell jelníteni a kiemelt projektet
        // a navigációban
        $this->load->model('projekt_model');
        // ahol van kiemelt flag
        $options["where"]["kiemelt_flag"] = 1;
        $kiemelt_projektek = $this->projekt_model->get_projektek($options);
        if ($kiemelt_projektek) {
            // randomizáljuk a kapott arrayt
            $this->load->helper('array');
            // beteszem random kiemelt projektként
            $this->data['random_kiemelt_projekt_data'] = random_element($kiemelt_projektek);
        }

        // a kedvencek minden oldalra kell
        $this->load->model('kedvencek_model');
        $kedvencek_config = array(
            'order_by' => 'nev'
        );
        // szétválogatom a kedvencek_resultot a kedvencek data-ba
        // kategoriánként
        $kedvencek_result = $this->kedvencek_model->get_kedvencek($kedvencek_config);
        $kedvencek_data = array();
        // szétválogatom array-ba
        foreach ($kedvencek_result as $kedvenc) {
            if (!isset($kedvencek_data[$kedvenc->csoport]))
                $kedvencek_data[$kedvenc->csoport] = array();
            array_push($kedvencek_data[$kedvenc->csoport], $kedvenc);
        }
        // mehet a data-ba, view-be.
        $this->kedvencek_data['kedvencek_data'] = $kedvencek_data;
        // footer kedvencek betöltése
        $this->data['footer_kedvencek'] =
                $this->load->view('frontend/footer_kedvencek', $this->kedvencek_data, $return = TRUE);

        // fő kontent betöltése változóba
        $this->data['main_content'] = $this->load->view($main_view, $this->data, $return = TRUE);

        $this->benchmark->mark('frontend_end');
        $this->data['footer_benchmark'] = $this->benchmark->elapsed_time('frontend_start', 'frontend_end');
        $this->load->view('frontend/core', $this->data);
    }

}